/* 
1. GET请求和POST请求的区别？(可以从用途、参数、安全性等方面描述)(10分)
    答：1.GET用来获取资源   url传参 有长度限制  不安全
        2.POST用来新建资源（也可以用来更新资源）  通过body传参  安全性高

2. 阐述MIME类型的作用。(5分)
    答：用来设置上传给服务器的数据类型 contrnt-type,方便服务器识别数据类型，从而找到正确的中间件处理解析这些参数，得到正确的结果。

3. 原生ajax向后端接口发送POST请求时，前后端分别注意什么。(5分)
    答：POST 请求时， 前端因设置请求头 Content-Type，用于请求参数以什么样的格式发送给后端
        前端设置 application/json 或者 application/x-www-form-urlencoded
        后端配置 app.use(express.urlencoded({ extends: false }));

4. jQuery向后端接口发送POST请求时，前后端分别注意什么。(5分)
    答：POST请求，默认携带参数是 application/x-www-form-urlencoded  这种格式的 ，无需额外配置content-Type的请求头了 
        如果是POST-JSON数据比较特殊，默认 jQuery 把它当作application/x-www-form-urlencoded 需要配置 contentType: "application/json",
        如果前端是JSON数据类型，后端需要配置全局件 app.use(express.json());
5. jQuery发送GET请求的两种代码写法，用代码写出来完整配置。(5分)
    答：一：
        $.get("http://localhost:8080/user",(data) => {
            conlose.log("请求方式一")
        });
        二：
        $.ajax({
            url:"",
            method:"GET",
            success: function (data) {
                conlose.log("方法二");
            },
        })

6. jQuery发送POST请求的两种代码写法，用代码写出来完整配置。(5分)
        答：一：拼接字符串
        $.ajax({
                method: "POST",
                url: "http://localhost:8080/login",
                data: {
                    uname: "admin",
                    upwd: "admin",
                }
            });
            二：post-json
            $.ajax({
            type: "POST",
            url: "http://localhost:8080/login",
            data:JSON.stringify({name: "admin",pwd: "admin"}),
            // JSON数据比较特殊，默认 jQuery 把它当作application/x-www-form-urlencoded
            // 这种格式处理了，处理结果不正确，后端没法正常解析
            // 因此需要手动请求头
            contentType: "application/json",
            success: function (data) {
                console.log("res:", data);
            }
        })

7. 跨域产生的原因是什么？浏览器为什么要阻止跨域？(5分)
        答：跨域原因：浏览器cors保护机制，只要协议/域名/端口号/有任意一个不同，就会产生跨域
        为什么阻止跨域：防止病毒非法入侵,保护服务器数据安全

8. cors包如何解决跨域，用代码写出详细步骤。(10分)
        答：const cors = require("cors");   // 安装引用 npm i cors
            app.use(cors());    // app为服务器实例

9. 代理服务器解决跨域的原理是什么？(10分)
        答：工作原理实质上是利用http-proxy-middleware 这个http代理中间件，实现请求转发给其他服务器
            让代理服务器代替浏览器请求，这样就不会产生浏览器请求和目标服务器产生跨域

10. 代理服务器解决跨域的代码实现步骤。(10分) 单词过长可以写开头和结尾，中间省略即可。
        答：
        const express = require("express");
        const { createProxyMiddleware } = require("http-proxy-middleware");
        const cors = require("cors");

        const app = express();
        app.use(cors());

        app.use(
          createProxyMiddleware({
            target: "https://www.baidu.com",
            changeOrigin: true, 
          })
        );

        app.listen(9000, () => {
            console.log("代理服务已启动 9000");
        });


11. ajax请求的特点是什么？(可以从用途、网页表现、同步异步等方面描述，可以结合着form描述)(10分)
        答：快速相应客户端、网页表现是刷新局部网页，而不是整个网页刷新
            使用 JavaScript 向服务器提出请求并处理响应
            不阻塞用户核心对象XMLHttpRequest

12. 列举JS中数组常用API，至少5个。(10分，1个2分)
        答：arr.forEach() 遍历数组
            arr.push()      元素后添加元素
            arr.pop()       末尾删除元素，每次只能删一个，返回值为被删除的元素,改变原数组；
            arr.unshift()   元素开头添加元素
            arr.shift()     元素开头删除元素，每次只能删一个
            arr.join()      将数组通过指定符号转为字符,没有默认为逗号
            arr.sort()      升序排序


13. 给定以下学员数组结构，实现姓名搜索功能，比如：输入张三，就把张三这个人的信息查询出来。(10分)
let users = [
   {age: 12, other: {name: 张三, sex: 男}},
   {age: 22, other: {name: 李四, sex: 女}},
   {age: 32, other: {name: 王五, sex: 男}},
] 
        答：

*/